Polling is a commonly used mechanism for obtaining data from network services. For example, an application can utilize polling to regularly determine the state of a network service or the state of a computing resource provided by the network service. Polling, however, can be very inefficient and, as a result, can unnecessarily utilize network bandwidth and computing resources. If the state of the polled network service or the computing resource provided by the network service does not change between polls of the network service, for instance, an unnecessary polling operation has been performed, thereby wasting network bandwidth and computing resources. Heavy polling can also place a significant load on the polled network service, which is usually undesirable. In response thereto, the polling application can be throttled by blocking requests from the polling application in some circumstances, which is also typically undesirable.
Event-based delivery mechanisms are one alternative to polling that can reduce unnecessary polling of a network service. When an event-based delivery mechanism is utilized, polling can be eliminated by only providing notifications when events that identify a change in the state of the network service. Although event-based delivery mechanisms can reduce some of the unnecessary use of computing resources caused by polling, these mechanisms can be difficult to implement, particularly with programs that have been configured to utilize polling. Developers of such programs typically do not want to expend the significant time and effort necessary to convert a program that utilizes polling to instead utilize an event-based delivery mechanism. This can be especially true for programs that are large and complex.
The disclosure made herein is presented with respect to these and other considerations.